嗨!週三大家好!原本今天要繼續讀書的,不過誠如昨天所述,我剛好搜尋到一篇跟 Borg 有關的文章:Large-scale cluster management at Google with Borg,內容很詳盡,今天就先借他插個隊吧 XD,開始囉!
在 Job 提交後,Borgmaster 將其記錄在 Paxos 中,並將 Job 的 Task 添加到待處理隊列。調度器不斷掃描此隊列,並將任務分配給有足夠資源和符合作業要求的機器。調度過程從高至低優先級進行,並在每個優先級內進行循環以確保公平性。
調度算法有兩部分:
在可行性檢查中,調度器找到一系列可滿足 Job 所需要的機器,並確保有足夠的「可用」資源。在評分過程中,調度器會看把這個工作安排到哪個機器上面需要最小的代價,例如:最小化的任務數量和優先級、選擇已有執行任務套件的機器,以及包括在同一機器上混合高低優先級的任務以適應負載巔峰,來確定每台機器的「優勢」。
今天瞭解了 Borg 是如何安排執行任務的,接著會繼續研究下一部分,那就明天見拉!掰噗~